package com.color.admin.common.core.base;

/**
 * @author HaiQiu
 * 公共基础接口
 * 这里实现简单的基础增删改查功能
 * SAVE_OBJ 表示新增接口传入参数
 * UPDATE_OBJ 表示修改接口传入参数
 * DELETE_OBJ 表示删除接口传入参数
 * GET_OBJ 表示单条查询传入参数
 * GET_R 表示单条查询返回参数
 * LIST_OBJ 表示模糊抽象分页查询传入参数
 * LIST_R 表示模糊抽象分页查询返回参数
 */
public interface BaseService<SAVE_OBJ,UPDATE_OBJ,DELETE_OBJ,GET_OBJ,GET_R,LIST_OBJ,LIST_R> {

    /**
     * 保存新增
     * @param saveObj 泛型传值
     */
    void save(SAVE_OBJ saveObj);

    /**
     * 更新数据（需要对象传ID）
     * @param updateObj 泛型传值
     */
    void update(UPDATE_OBJ updateObj);

    /**
     * 批量删除
     * @param deleteObj 泛型数据
     */
    void delete(DELETE_OBJ deleteObj);

    /**
     * 根据ID查询单条数据
     * @param getObj 查询参数
     * @return 返回指定泛型数据
     */
    GET_R get(GET_OBJ getObj);

    /**
     * 抽象模糊分页查询
     * @param listObj 查询参数值
     * @return 返回指定泛型数据
     */
    LIST_R list(LIST_OBJ listObj);
}
